<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Usuario_exe( $this );
    
	class Usuario_exe extends Exe
	{
	function Usuario_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
		// AGREGAR_USUARIOPORTAL
		function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Usuario_frm' );
			extract( $oForm->getFieldArray() );
			// Arma el string de roles
			foreach ( $oForm->aFields['cRoles']->getValue() as $cRol ) 
			{
				list($cModule, $ncRol ) = explode('|', $cRol);
				$aRoles[$cModule] .= $ncRol . ',';
			}
			foreach ( $aRoles as $cModule => $cRol ) 
				$cRoles .= $cModule .':' . $cRol . ';';
			// Busca el siguiente id
			$ncUsuario      = $this->oDatabase->nextKey("gtUsuario", "ncUsuario"  );
			$this->oDatabase->insert("gtUsuario"
								,"ncUsuario", $ncUsuario
								,"cNombre", $cNombre
								,"cApellido", $cApellido
								,"cEmail", $cEmail
								,"dNacimiento", $dNacimiento
								,"cAlias", $cAlias
								,"ncGenero", $ncGenero
								,"cArchivo", $cArchivo
								,"ncPais", $ncPais
								,"ncUbicacion", $ncUbicacion
								,"cUbicacion", $cUbicacion
								,"cDireccion", $cDireccion
								,"cTelefono", $cTelefono
								,"cClave", $cClave
								,"cDescripcion", $cDescripcion
								,"bGacetilla", $bGacetilla
								,"bActivo", $bActivo
								,"cRoles", $cRoles
								,"cDocumento", $cDocumento);
			$this->setInputData( $ncUsuario, $cNombre . ' ' . $cApellido);
		}
		
		// ELIMINAR_USUARIOPORTAL
		function delete()
		{
			$ncUsuario = getParam( 'ncUsuario' );
			$this->oDatabase->delete("gtUsuario","ncUsuario", $ncUsuario );
		}
		
		// MODIFICAR_USUARIOPORTAL
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Usuario_frm' );
			extract( $oForm->getFieldArray() );
			// Arma el string de roles
			foreach ( $oForm->aFields['cRoles']->getValue() as $cRol ) 
			{
				list($cModule, $ncRol ) = explode('|', $cRol);
				$aRoles[$cModule] .= $ncRol . ',';
			}
			foreach ( $aRoles as $cModule => $cRol ) 
				$cRoles .= $cModule .':' . $cRol . ';';
			$this->oDatabase->update("gtUsuario"
								,"cNombre", $cNombre
								,"cApellido", $cApellido
								,"cEmail", $cEmail
								,"dNacimiento", $dNacimiento
								,"cAlias", $cAlias
								,"ncGenero", $ncGenero
								,"cArchivo", $cArchivo
								,"ncPais", $ncPais
								,"ncUbicacion", $ncUbicacion
								,"cUbicacion", $cUbicacion
								,"cDireccion", $cDireccion
								,"cTelefono", $cTelefono
								,"cClave", $cClave
								,"cDescripcion", $cDescripcion
								,"bGacetilla", $bGacetilla
								,"bActivo", $bActivo
								,"cRoles", $cRoles
								,"cDocumento", $cDocumento
								,"WHERE"
								 ,"ncUsuario", $ncUsuario);
			$this->setInputData( $ncUsuarioPortal, $cdUsuarioPortal );
		}
	}
?>